{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Scikit-learn实例"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,\n",
       "    decision_function_shape='ovr', degree=3, gamma='auto_deprecated',\n",
       "    kernel='rbf', max_iter=-1, probability=False, random_state=None,\n",
       "    shrinking=True, tol=0.001, verbose=False)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.svm import SVC\n",
    "SVC()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![image-20200923152318005](https://gitee.com/Little_Six/repository_pic/raw/master/null/image-20200923152318005.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 主要调节的参数有：C、kernel、degree、gamma、coef0。\n",
    "- C：C-SVC的惩罚参数C?默认值是1.0 。  \n",
    "    C越大，相当于惩罚松弛变量，希望松弛变量接近0，即对误分类的惩罚增大，趋向于对训练集全分对的情况，这样对训练集测试时准确率很高，但泛化能力     弱。C值小，对误分类的惩罚减小，允许容错，将他们当成噪声点，泛化能力较强。\n",
    "- kernel ：核函数，默认是rbf，可以是‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’\n",
    "- degree ：多项式poly函数的维度，默认是3，选择其他核函数时会被忽略。\n",
    "- gamma ： ‘rbf’,‘poly’ 和‘sigmoid’的核函数参数。默认是’auto’，则会选择1/n_features\n",
    "- coef0 ：核函数的常数项。对于‘poly’和 ‘sigmoid’有用。\n",
    "- probability ：是否采用概率估计？.默认为False\n",
    "- shrinking ：是否采用shrinking heuristic方法，默认为true\n",
    "- tol ：停止训练的误差值大小，默认为1e-3\n",
    "- cache_size ：核函数cache缓存大小，默认为200M\n",
    "- class_weight ：类别的权重，字典形式传递。设置第几类的参数C为weight*C(C-SVC中的C)\n",
    "- verbose ：允许冗余输出？\n",
    "- max_iter ：最大迭代次数。-1为无限制。\n",
    "- decision_function_shape ：‘ovo’, ‘ovr’ or None, default=None3\n",
    "- random_state ：数据洗牌时的种子值，int值\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 例题：\n",
    "已知正例点$x_1=(1,2)^T,x_2=(2,3)^T,x_3=(3,3)^T$，负例点$x_4=(2,1)^T,x_5=(3,2)^T$，试求最大间隔分离平面和分类决策函数，并在图中挂出分离超平面、间隔边界及支持向量。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "w = [[-1.  2.]]\n",
      "b = [-2.]\n",
      "support vectors = [[3. 2.]\n",
      " [1. 2.]\n",
      " [3. 3.]]\n"
     ]
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "from sklearn.svm import SVC\n",
    "\n",
    "# 加载数据\n",
    "X = [[1, 2], [2, 3], [3, 3], [2, 1], [3, 2]]\n",
    "y = [1, 1, 1, -1, -1]\n",
    "\n",
    "# 训练SVM模型\n",
    "clf = SVC(kernel='linear', C=10000)\n",
    "clf.fit(X, y)\n",
    "\n",
    "print(\"w =\", clf.coef_)\n",
    "print(\"b =\", clf.intercept_)\n",
    "print(\"support vectors =\", clf.support_vectors_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "最大间隔分离超平面：$-x^{(1)}+2x^{(2)}-2=0$  \n",
    "分类决策函数：$f(x)=\\text{sign}(-x^{(1)}+2x^{(2)}-2)$  \n",
    "支持向量：$x_1=(3,2)^T,x_2=(1,2)^T, x_3=(3,3)^T$  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "# 绘制数据点\n",
    "color_seq = ['red' if v == 1 else 'blue' for v in y]\n",
    "plt.scatter([i[0] for i in X], [i[1] for i in X], c=color_seq)\n",
    "# 得到x轴的所有点\n",
    "xaxis = np.linspace(0, 3.5)\n",
    "w = clf.coef_[0]\n",
    "# 计算斜率\n",
    "a = -w[0] / w[1]\n",
    "# 得到分离超平面\n",
    "y_sep = a * xaxis - (clf.intercept_[0]) / w[1]\n",
    "# 下边界超平面\n",
    "b = clf.support_vectors_[0]\n",
    "yy_down = a * xaxis + (b[1] - a * b[0])\n",
    "# 上边界超平面\n",
    "b = clf.support_vectors_[-1]\n",
    "yy_up = a * xaxis + (b[1] - a * b[0])\n",
    "# 绘制超平面\n",
    "plt.plot(xaxis, y_sep, 'k-')\n",
    "plt.plot(xaxis, yy_down, 'k--')\n",
    "plt.plot(xaxis, yy_up, 'k--')\n",
    "# 绘制支持向量\n",
    "plt.xlabel('$x^{(1)}$')\n",
    "plt.ylabel('$x^{(2)}$')\n",
    "plt.scatter(clf.support_vectors_[:, 0],\n",
    "            clf.support_vectors_[:, 1],\n",
    "            s=150,\n",
    "            facecolors='none',\n",
    "            edgecolors='k')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## SVM高斯核调参"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn import datasets, svm\n",
    "from sklearn.svm import SVC\n",
    "from sklearn.datasets import make_moons, make_circles, make_classification\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "X, y = make_circles(noise=0.2, factor=0.5, random_state=1);\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "X = StandardScaler().fit_transform(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib.colors import ListedColormap\n",
    "cm = plt.cm.RdBu\n",
    "cm_bright = ListedColormap(['#FF0000', '#0000FF'])\n",
    "ax = plt.subplot()\n",
    "\n",
    "ax.set_title(\"Input data\")\n",
    "# Plot the training points\n",
    "ax.scatter(X[:, 0], X[:, 1], c=y, cmap=cm_bright)\n",
    "ax.set_xticks(())\n",
    "ax.set_yticks(())\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The best parameters are {'C': 10, 'gamma': 0.1} with a score of 0.91\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\anaconda3\\lib\\site-packages\\sklearn\\model_selection\\_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
      "  DeprecationWarning)\n"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import GridSearchCV\n",
    "grid = GridSearchCV(SVC(), param_grid={\"C\":[0.1, 1, 10], \"gamma\": [1, 0.1, 0.01]}, cv=4)\n",
    "grid.fit(X, y)\n",
    "print(\"The best parameters are %s with a score of %0.2f\"\n",
    "      % (grid.best_params_, grid.best_score_))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 9 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1\n",
    "y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1\n",
    "xx, yy = np.meshgrid(np.arange(x_min, x_max,0.02),\n",
    "                     np.arange(y_min, y_max, 0.02))\n",
    "\n",
    "plt.figure(figsize=(8, 6))\n",
    "for i, C in enumerate((0.1, 1, 10)):\n",
    "    for j, gamma in enumerate((1, 0.1, 0.01)):\n",
    "        plt.subplot(3,3,i*3+j+1)\n",
    "        clf = SVC(C=C, gamma=gamma)\n",
    "        clf.fit(X,y)\n",
    "        Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])\n",
    "\n",
    "        # Put the result into a color plot\n",
    "        Z = Z.reshape(xx.shape)\n",
    "        plt.contourf(xx, yy, Z, cmap=plt.cm.coolwarm, alpha=0.8)\n",
    "\n",
    "        # Plot also the training points\n",
    "        plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.coolwarm)\n",
    "\n",
    "        plt.xlim(xx.min(), xx.max())\n",
    "        plt.ylim(yy.min(), yy.max())\n",
    "        plt.xticks(())\n",
    "        plt.yticks(())\n",
    "        plt.xlabel(\" gamma=\" + str(gamma) + \" C=\" + str(C))\n",
    "        plt.axis('tight')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## SVM实现过程"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "from sklearn.datasets import load_iris\n",
    "from sklearn.model_selection import  train_test_split\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x20958434b48>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# data\n",
    "def create_data():\n",
    "    iris = load_iris()\n",
    "    df = pd.DataFrame(iris.data, columns=iris.feature_names)\n",
    "    df['label'] = iris.target\n",
    "    df.columns = [\n",
    "        'sepal length', 'sepal width', 'petal length', 'petal width', 'label'\n",
    "    ]\n",
    "    data = np.array(df.iloc[:100, [0, 1, -1]])\n",
    "    for i in range(len(data)):\n",
    "        if data[i, -1] == 0:\n",
    "            data[i, -1] = -1\n",
    "    # print(data)\n",
    "    return data[:, :2], data[:, -1]\n",
    "\n",
    "X, y = create_data()\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25)\n",
    "\n",
    "plt.scatter(X[:50,0],X[:50,1], label='0')\n",
    "plt.scatter(X[50:,0],X[50:,1], label='1')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'train done!'"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "class SVM:\n",
    "    def __init__(self, max_iter=100, kernel='linear'):\n",
    "        self.max_iter = max_iter\n",
    "        self._kernel = kernel\n",
    "\n",
    "    def init_args(self, features, labels):\n",
    "        self.m, self.n = features.shape\n",
    "        self.X = features\n",
    "        self.Y = labels\n",
    "        self.b = 0.0\n",
    "\n",
    "        # 将Ei保存在一个列表里\n",
    "        self.alpha = np.ones(self.m)\n",
    "        self.E = [self._E(i) for i in range(self.m)]\n",
    "        # 松弛变量\n",
    "        self.C = 1.0\n",
    "\n",
    "    def _KKT(self, i):\n",
    "        y_g = self._g(i) * self.Y[i]\n",
    "        if self.alpha[i] == 0:\n",
    "            return y_g >= 1\n",
    "        elif 0 < self.alpha[i] < self.C:\n",
    "            return y_g == 1\n",
    "        else:\n",
    "            return y_g <= 1\n",
    "\n",
    "    # g(x)预测值，输入xi（X[i]）\n",
    "    def _g(self, i):\n",
    "        r = self.b\n",
    "        for j in range(self.m):\n",
    "            r += self.alpha[j] * self.Y[j] * self.kernel(self.X[i], self.X[j])\n",
    "        return r\n",
    "\n",
    "    # 核函数\n",
    "    def kernel(self, x1, x2):\n",
    "        if self._kernel == 'linear':\n",
    "            return sum([x1[k] * x2[k] for k in range(self.n)])\n",
    "        elif self._kernel == 'poly':\n",
    "            return (sum([x1[k] * x2[k] for k in range(self.n)]) + 1)**2\n",
    "\n",
    "        return 0\n",
    "\n",
    "    # E（x）为g(x)对输入x的预测值和y的差\n",
    "    def _E(self, i):\n",
    "        return self._g(i) - self.Y[i]\n",
    "\n",
    "    def _init_alpha(self):\n",
    "        # 外层循环首先遍历所有满足0<a<C的样本点，检验是否满足KKT\n",
    "        index_list = [i for i in range(self.m) if 0 < self.alpha[i] < self.C]\n",
    "        # 否则遍历整个训练集\n",
    "        non_satisfy_list = [i for i in range(self.m) if i not in index_list]\n",
    "        #将满足0<a<C的样本点放在前面，不满足的放在后面\n",
    "        index_list.extend(non_satisfy_list)\n",
    "        \n",
    "\n",
    "        for i in index_list:\n",
    "            if self._KKT(i):\n",
    "                continue\n",
    "\n",
    "            E1 = self.E[i]\n",
    "            # 如果E2是+，选择最小的；如果E2是负的，选择最大的\n",
    "            if E1 >= 0:\n",
    "                j = min(range(self.m), key=lambda x: self.E[x])\n",
    "            else:\n",
    "                j = max(range(self.m), key=lambda x: self.E[x])\n",
    "            return i, j\n",
    "\n",
    "    def _compare(self, _alpha, L, H):\n",
    "        if _alpha > H:\n",
    "            return H\n",
    "        elif _alpha < L:\n",
    "            return L\n",
    "        else:\n",
    "            return _alpha\n",
    "\n",
    "    def fit(self, features, labels):\n",
    "        self.init_args(features, labels)\n",
    "\n",
    "        for t in range(self.max_iter):\n",
    "            # train\n",
    "            i1, i2 = self._init_alpha()\n",
    "\n",
    "            # 边界\n",
    "            if self.Y[i1] == self.Y[i2]:\n",
    "                L = max(0, self.alpha[i1] + self.alpha[i2] - self.C)\n",
    "                H = min(self.C, self.alpha[i1] + self.alpha[i2])\n",
    "            else:\n",
    "                L = max(0, self.alpha[i2] - self.alpha[i1])\n",
    "                H = min(self.C, self.C + self.alpha[i2] - self.alpha[i1])\n",
    "\n",
    "            E1 = self.E[i1]\n",
    "            E2 = self.E[i2]\n",
    "            # eta=K11+K22-2K12\n",
    "            eta = self.kernel(self.X[i1], self.X[i1]) + self.kernel(\n",
    "                self.X[i2],\n",
    "                self.X[i2]) - 2 * self.kernel(self.X[i1], self.X[i2])\n",
    "            if eta <= 0:\n",
    "                # print('eta <= 0')\n",
    "                continue\n",
    "\n",
    "            alpha2_new_unc = self.alpha[i2] + self.Y[i2] * (\n",
    "                E1 - E2) / eta  #此处有修改，根据书上应该是E1 - E2，书上130-131页\n",
    "            alpha2_new = self._compare(alpha2_new_unc, L, H)\n",
    "\n",
    "            alpha1_new = self.alpha[i1] + self.Y[i1] * self.Y[i2] * (\n",
    "                self.alpha[i2] - alpha2_new)\n",
    "\n",
    "            b1_new = -E1 - self.Y[i1] * self.kernel(self.X[i1], self.X[i1]) * (\n",
    "                alpha1_new - self.alpha[i1]) - self.Y[i2] * self.kernel(\n",
    "                    self.X[i2],\n",
    "                    self.X[i1]) * (alpha2_new - self.alpha[i2]) + self.b\n",
    "            b2_new = -E2 - self.Y[i1] * self.kernel(self.X[i1], self.X[i2]) * (\n",
    "                alpha1_new - self.alpha[i1]) - self.Y[i2] * self.kernel(\n",
    "                    self.X[i2],\n",
    "                    self.X[i2]) * (alpha2_new - self.alpha[i2]) + self.b\n",
    "\n",
    "            if 0 < alpha1_new < self.C:\n",
    "                b_new = b1_new\n",
    "            elif 0 < alpha2_new < self.C:\n",
    "                b_new = b2_new\n",
    "            else:\n",
    "                # 选择中点\n",
    "                b_new = (b1_new + b2_new) / 2\n",
    "\n",
    "            # 更新参数\n",
    "            self.alpha[i1] = alpha1_new\n",
    "            self.alpha[i2] = alpha2_new\n",
    "            self.b = b_new\n",
    "\n",
    "            self.E[i1] = self._E(i1)\n",
    "            self.E[i2] = self._E(i2)\n",
    "        return 'train done!'\n",
    "\n",
    "    def predict(self, data):\n",
    "        r = self.b\n",
    "        for i in range(self.m):\n",
    "            r += self.alpha[i] * self.Y[i] * self.kernel(data, self.X[i])\n",
    "\n",
    "        return 1 if r > 0 else -1\n",
    "\n",
    "    def score(self, X_test, y_test):\n",
    "        right_count = 0\n",
    "        for i in range(len(X_test)):\n",
    "            result = self.predict(X_test[i])\n",
    "            if result == y_test[i]:\n",
    "                right_count += 1\n",
    "        return right_count / len(X_test)\n",
    "\n",
    "    def _weight(self):\n",
    "        # linear model\n",
    "        yx = self.Y.reshape(-1, 1) * self.X\n",
    "        self.w = np.dot(yx.T, self.alpha)\n",
    "        return self.w\n",
    "    \n",
    "svm = SVM(max_iter=200)\n",
    "\n",
    "svm.fit(X_train, y_train)\n",
    "\n",
    "#svm.score(X_test, y_test)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
